In general terms, a communication system provides the necessary means for one communications device to communicate with other communications devices in the communication system. Examples of such communications devices are user equipment (UE) and network nodes. Examples of UEs are mobile phones, laptop, tablet, or stationary computers, Input/Output devices, automation controllers, electronic controller units, actuators, sensors, and machine-to-machine devices, also known as connected devices. Examples of network nodes are base station transceivers, wireless access points, gateways and servers.
The communications is based on exchanging messages on communications links established between the communications devices. These communications links may be wired, wireless, or any combination thereof. The communications may be direct communications or may be routed through one or more intermediate communications devices. The message exchange follows one or more given communications protocols. In such communication systems, there is always a challenge to obtain good performance and capacity for a given communications protocol, its parameters and the physical environment in which the communications system is deployed.
In general terms, a communication system may offer a plurality of services relating to communications between other communications devices. In general terms, the services offered relate to different types of exchange of information between the communications devices. Each service may have specific requirements on the information exchange between the communications devices. Some requirements are parameters relating to reliability, bit rate, latency, etc. Each service may also be sensitive to changes of such parameters during on-going execution of an application utilizing the service.
Actor/Data-flow modeling is a paradigm for streaming applications, such as application of a user equipment (UE) for distributed computing and parallel platforms in general. This constrained programming model benefits high-level transformations and facilitates code optimizations and run-time deployment. The programming model allows for one application to be distributed over several different communications devices, for example by deploying one or several actors or application modules in an application on different available software servers. The software servers may be implemented in a server, a base station transceiver, a micro data center (MDC) which may comprise a collection of servers associated with a base station transceiver, or a UE.
In the dataflow paradigm a program or application is described as a graph of actors or application modules, also known as function units, that communicate asynchronously using message passing, so-called tokens. The actor can have internal state information indicating the current internal state of the application, that is the current code segment being executed and the value(s) stored in any associated processor registers and possibly other control data for various parameters or variables. The programming model is a natural fit for many traditional Digital Signal Processing applications such as audio and video coding, radio base band algorithms, cryptography applications, automation, etc. Data flow decouples the program specification from the available level of parallelism in the executing hardware since the actual mapping of tasks onto threads, processes, cores and devices possibly is not done in the application code but in the compilation and deployment phase. The designer of the application is thus not required to know the actual structure of the executing hardware system. This is beneficial in designing application that are to be used in varying infrastructures such as differing models and makes for communication terminals, different network infrastructures and varying communication modes.
The application is divided into application modules and distributed to various network nodes which execute their application modules according to an actor-dataflow model. Other examples of computational models are server-client model, Model-View-Controller (MVC) model, peer-to-peer model, etc. The communications devices executing applications may use methods according to the above for distributing the application over several communications devices.
However, there is still a need for improved communications between communications devices.